分析网站
打开控制台,发现有用信息是用websocket
传输的,需要的是一段id
,猜测id
包含需要被测速网站的url
。返回的信息包括id和session_id
,猜测session_id
是对应测速节点的id
,但是返回的信息里面并没有写明是哪个测速节点,只包含了测速的结果。
现在需要找到如何生成id
的。打开调用栈,每个函数都打开看一下,发现一个可能是发送websocket
的函数。
之后搜索这个e
是哪里生成的,按ctrl+f
搜索,发现了定义e的位置。之后有一个ae(e)
的操作,打个断点看一下。这个e的内容包含了我要测速的网站还有测速的GET
方法和其他一些自定义配置。
之后F10
继续运行,发现这个a
是包含我所要的所有信息的,包括前面提到的id
和session_id
是对应测速节点的信息(ISP,位置等)。也就是说ae(e)
是获取id
的那个函数。
跳转到ae()
,发现有POST
的关键词,并且在上面找到了path
,尝试一下把e
的内容构造成一个json
,并且POST
到对应url
,结果报错。
之后把json
的内容一些一些删去,发现如果有多余的内容是不行的,只能带有必要的内容,否则报错。返回的内容也令我满意,到此js逆向结束。